const path = require('path')
const webpack = require('webpack')
const CopyWebpackPlugin = require('copy-webpack-plugin')
// 不同环境接口url
const prodEnv = {
  // 佛山开发区
  serve: {
    VUE_APP_BASE_URL: '""',
    VUE_APP_BASE_IMGURL: '"http://192.168.2.101:8080/"',
    VUE_APP_PDF_URL: '"http://192.168.2.101:8080/"',
    VUE_APP_FILE_URL: '"http://192.168.2.101:8080/"',
    VUE_APP_KEY: '"FSkfq"',
    VUE_APP_PROJECT_NAME: '培训系统',
    VUE_APP_OFFICE_ID: '"17"'
  },
  // 佛山测试开发区
  buildTest: {
    VUE_APP_BASE_URL: '"http://121.37.233.37:8082/api"',
    VUE_APP_PDF_URL: '"http://121.37.233.37:8082"',
    VUE_APP_KEY: '"FSkfq"',
    VUE_APP_PROJECT_NAME: '培训系统',
    VUE_APP_DEAL_DOWN_TEMPLATE: '"/smartFile/2022/09/20/5c23b466-b5ed-404b-a5e5-ea29af30817b.xlsx"',
    VUE_APP_OFFICE_ID: '"17"'
  },
}
const original = JSON.parse(process.env.npm_config_argv).original[1] || 'serve' // 运行的命令名称npm run build=>build
const NODE_ENV = process.env.NODE_ENV === 'production'


let proxy = "http://120.26.194.73:8083/"

module.exports = {
  publicPath: './',
  chainWebpack: config => {
    config.plugin('html').tap(args => {
      args[0].title = prodEnv[original].VUE_APP_PROJECT_NAME
      return args
    })
  },
  configureWebpack: config => {
    const plugins = [] // 添加环境变量
    plugins.push(
      new webpack.DefinePlugin({
        'process.env': prodEnv[original]
      })
    )
    plugins.push(
      new CopyWebpackPlugin([{
        from: path.resolve(__dirname, 'static'),
        to: 'static',
        ignore: ['.*', '.svn', '**/.svn/**/*'] // ingore svn files
      }])
    )
    config.externals = {
      echarts: 'echarts'
    }
    if (NODE_ENV) {
      config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
    } else {
      // 为开发环境修改配置...
    }
    config.plugins = [...config.plugins, ...plugins]
  },
  devServer: {
    port: '8083',
    open:true,
    proxy: {
      '/outer': {
        target: 'http://weixin.51ipms.com',
        changeOrigin: true
      },
      '/ourchem-middle': {
        target: 'https://pre.patyee.com/',
        changeOrigin: true
      },
      '/': {
        target: proxy,
        // changeOrigin: true
        // target: 'http://wuxi-ips.patyee.com:8081',
        // changeOrigin: true,
        // target: 'http://192.168.2.65:8082',
        changeOrigin: true
        // target: 'http://192.168.2.2:8081', // huan
        // changeOrigin: true
      }
    }
  },
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          require('postcss-plugin-px2rem')({
            rootValue: 75, // 换算基数， 默认100  ，这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多上px了。
            // unitPrecision: 5, //允许REM单位增长到的十进制数字。
            // propWhiteList: ['body'], // 默认值是一个空数组，这意味着禁用白名单并启用所有属性。
            // propBlackList: [], //黑名单
            exclude: false, // 默认false，可以（reg）利用正则表达式排除某些文件夹的方法，例如/(node_module)\/如果想把前端UI框架内的px也转换成rem，请把此属性设为默认值
            // selectorBlackList: [], //要忽略并保留为px的选择器
            // ignoreIdentifier: false,  //（boolean/string）忽略单个属性的方法，启用ignoreidentifier后，replace将自动设置为true。
            // replace: true, // （布尔值）替换包含REM的规则，而不是添加回退。
            mediaQuery: false // （布尔值）允许在媒体查询中转换px。
            // minPixelValue: 3 // 设置要替换的最小像素值(3px会被转rem)。 默认 0
          })
        ]
      }
    }
  }
}